Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a computing device can request content from another computing device via the communication network. For example, a user at a personal computing device can utilize a software browser application to request a Web page from a server device via the Internet. In such embodiments, the user computing device can be referred to as a client computing device and the server device can be referred to as a content provider.
With reference to an illustrative example, a user of a client computing device may search for or navigate to a desired content item. The user may utilize an application to submit requests, search queries and other interactions to one or more content providers. The application may be a purpose-built application for requesting and interacting with such content items or the application may be a general purpose browser application. The requested content may be identified by one or more embedded resource identifiers, such as uniform resource locators (“URLs”). In turn, software on the client devices typically processes embedded resource identifiers to generate requests for the resources. Often, the resource identifiers reference a computing device associated with the content provider such that the client device would transmit the request for the resource to the referenced content provider computing device.
Some content providers attempt to facilitate the delivery of requested content through the utilization of a content delivery network (“CDN”) service provider. A CDN service provider typically maintains a number of computing devices, generally referred to as “points of presence” or “POPs” in a communication network that can maintain content from various content providers. In turn, content providers can instruct, or otherwise suggest to, client computing devices to request some, or all, of the content provider's content from the CDN service provider's computing devices. With reference to the previous illustrative example, the content provider can leverage a CDN service provider with the modification or substitution of resource identifiers associated with the embedded resources. Specifically, the resource identifiers can reference a computing device associated with the CDN service provider such that the client computing device would transmit the request for the resource to the referenced CDN service provider computing device. Further, in many cases computing devices associated with content providers or CDN service providers cache content that is frequently requested. Similarly, client computing devices may cache content received from the content providers or CDN service providers. Serving requested content from caches at different locations reduces latency associated with content delivery to different extents.
From the perspective of a user utilizing a client computing device, a user experience can be defined in terms of the performance and latencies associated with obtaining network content over a communication network, such as obtaining a Web page or other network content, processing and rendering content on the client computing device, etc. Similarly, content providers are generally motivated to provide requested content to client computing devices often with consideration of efficiency and/or cost associated with transmission of the requested content. However, user experience may vary when requested content is being delivered to and rendered on client computing devices. The variance may depend on a combination of networking, computing, presenting, or other conditions associated with the content request and delivery process. On top of that, content providers associated with a business (e.g., an electronic commerce website), may also consider factors such as customer retention and/or business generation as they provide requested content to users.